﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using KenLib.BusinessManager;
using DataInfo;

public partial class APP_frmA_CompBranchHistoryCheck : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ((APP_MasterPage_appCom)this.Master).changeTitle("実習実施場所履歴情報登録");
        ((APP_MasterPage_appCom)this.Master).HideLiArea("frmA_CompBranchHistoryCheck");
        // cac gia tri duoc luu tu bien Session se duoc gan vao cac field tuong ung tren giao dien.
        
            
            if (Session["listValuefrmA_CompBranchHistoryInput"] == null)
            {
                Response.Redirect("frmA_CompBranchHistoryInput.aspx");
            }

            if (Session["拠点ID"] == null)
            {
                Response.Redirect("frmA_CompBranchInput.aspx");
            }
            if (Session["listValuefrmA_CompBranchHistoryInput"] != null)
            {
                getSession();
            }
        
    
    }

    protected void btn_登録完了_Click(object sender, EventArgs e)// luu cac thong tin vao DB
    {
        try
        {
            if (Session["Update_frmA_CompHistoryInput"] != null)
            {
                退職履歴Manager frm = new 退職履歴Manager();
                拠点履歴 obj = new 拠点履歴();
                obj.年度 = Int32.Parse(lbl_情報有効開始日.Text.ToString());
                obj.勤務開始時間 = lbl_勤務開始時間.Text.ToString();
                obj.勤務終了時間 = lbl_勤務終了時間.Text.ToString();
                obj.昼休み開始時間 = lbl_昼休み開始時間.Text.ToString();
                obj.昼休み終了時間 = lbl_昼休み終了時間.Text.ToString();
                obj.休憩合計時間 = Int32.Parse(lbl_休憩時間.Text.ToString());
                
                obj.所定労働時間1 = Int32.Parse(lbl_所定労働時間.Text.ToString());
                obj.所定労働時間_分 = Int32.Parse(lbl_所定労働時間_分.Text.ToString());
                obj.平均週間労働日数 = lbl_平均週間労働日数.Text.ToString();
                obj.年間労働日数 = float.Parse(lbl_年間労働日数.Text.ToString());
                obj.年間労働日数翌年 = float.Parse(lbl_年間労働日数翌年.Text.ToString());
                obj.年間労働日数翌々年 = float.Parse(lbl_年間労働日数翌々年.Text.ToString());
                obj.検診回数 = Int32.Parse(lbl_健康診断回数.Text.ToString());
                obj.検診実施日 = DateTime.Parse(lbl_前回健康診断実施日.Text.ToString());
                if (lbl_休業４日以上事故有無.Text.ToString() == "無")
                {
                    string 休業４日事故1 = "False";
                    obj.休業４日事故1 = Boolean.Parse(休業４日事故1.ToString());
                }
                if (lbl_休業４日以上事故有無.Text.ToString() == "有")
                {
                    string 休業４日事故1 = "True";
                    obj.休業４日事故1 = Boolean.Parse(休業４日事故1.ToString());
                }
                if (lbl_休業４日以上事故有無.Text.ToString() == "有")
                {
                    obj.休業４日事故件数 = Int32.Parse(lbl_件数1.Text.ToString());
                    obj.休業４日事故人数 = Int32.Parse(lbl_人数1.Text.ToString());
                }



                if (lbl_死亡事故有無.Text.ToString() == "無")
                {
                    string 死亡事故有無 = "False";
                    obj.死亡事故有無 = Boolean.Parse(死亡事故有無.ToString());
                }

                if (lbl_死亡事故有無.Text.ToString() == "有")
                {
                    string 死亡事故有無 = "true";
                    obj.死亡事故有無 = Boolean.Parse(死亡事故有無.ToString());
                }
                if (lbl_死亡事故有無.Text.ToString() == "有")
                {
                    obj.死亡事故件数 = Int32.Parse(lbl_件数2.Text.ToString());
                    obj.死亡事故人数 = Int32.Parse(lbl_人数2.Text.ToString());
                }







                if (lbl_労基法違反有無.Text.ToString() == "無")
                {
                    string 労基法違反有無 = "False";
                    obj.労基法違反有無 = Boolean.Parse(労基法違反有無.ToString());
                }

                if (lbl_労基法違反有無.Text.ToString() == "有")
                {
                    string 労基法違反有無 = "true";
                    obj.労基法違反有無 = Boolean.Parse(労基法違反有無.ToString());
                }
                if (lbl_労基法違反日.Text != "")
                {
                    obj.労基法違反有無日付 = DateTime.Parse(lbl_労基法違反日.Text.ToString());
                }
                obj.労基法違反有無内容 = lbl_労基法違反内容.Text.ToString();
                obj.安全衛生措置 = lbl_安全衛生措置.Text.ToString();
                string a = Session["拠点ID"].ToString();
                obj.拠点ID = Int32.Parse(a.ToString());


                frm.Update拠点履歴(obj);

                Session.Remove("listValuefrmA_CompBranchHistoryInput");
                Response.Redirect("frmA_CompBranchHistoryInput.aspx");
            }
            else
            {

                string check = checkYear();
                if (check == "true")
                {
                    退職履歴Manager frm = new 退職履歴Manager();
                    拠点履歴 obj = new 拠点履歴();
                    obj.年度 = Int32.Parse(lbl_情報有効開始日.Text.ToString());
                    obj.勤務開始時間 = lbl_勤務開始時間.Text.ToString();
                    obj.勤務終了時間 = lbl_勤務終了時間.Text.ToString();
                    obj.昼休み開始時間 = lbl_昼休み開始時間.Text.ToString();
                    obj.昼休み終了時間 = lbl_昼休み終了時間.Text.ToString();
                    obj.休憩合計時間 = Int32.Parse(lbl_休憩時間.Text.ToString());
                    obj.所定労働時間1 = Int32.Parse(lbl_所定労働時間.Text.ToString());
                    obj.所定労働時間_分 = Int32.Parse(lbl_所定労働時間_分.Text.ToString());
                    obj.平均週間労働日数 = lbl_平均週間労働日数.Text.ToString();
                    obj.年間労働日数 = float.Parse(lbl_年間労働日数.Text.ToString());
                    obj.年間労働日数翌年 = float.Parse(lbl_年間労働日数翌年.Text.ToString());
                    obj.年間労働日数翌々年 = float.Parse(lbl_年間労働日数翌々年.Text.ToString());
                    obj.検診回数 = Int32.Parse(lbl_健康診断回数.Text.ToString());
                    obj.検診実施日 = DateTime.Parse(lbl_前回健康診断実施日.Text.ToString());
                    if (lbl_休業４日以上事故有無.Text.ToString() == "無")
                    {
                        string 休業４日事故1 = "False";
                        obj.休業４日事故1 = Boolean.Parse(休業４日事故1.ToString());
                    }
                    if (lbl_休業４日以上事故有無.Text.ToString() == "有")
                    {
                        string 休業４日事故1 = "True";
                        obj.休業４日事故1 = Boolean.Parse(休業４日事故1.ToString());
                    }
                    if (lbl_休業４日以上事故有無.Text.ToString() == "有")
                    {
                        obj.休業４日事故件数 = Int32.Parse(lbl_件数1.Text.ToString());
                        obj.休業４日事故人数 = Int32.Parse(lbl_人数1.Text.ToString());
                    }



                    if (lbl_死亡事故有無.Text.ToString() == "無")
                    {
                        string 死亡事故有無 = "False";
                        obj.死亡事故有無 = Boolean.Parse(死亡事故有無.ToString());
                    }

                    if (lbl_死亡事故有無.Text.ToString() == "有")
                    {
                        string 死亡事故有無 = "true";
                        obj.死亡事故有無 = Boolean.Parse(死亡事故有無.ToString());
                    }
                    if (lbl_死亡事故有無.Text.ToString() == "有")
                    {
                        obj.死亡事故件数 = Int32.Parse(lbl_件数2.Text.ToString());
                        obj.死亡事故人数 = Int32.Parse(lbl_人数2.Text.ToString());
                    }







                    if (lbl_労基法違反有無.Text.ToString() == "無")
                    {
                        string 労基法違反有無 = "False";
                        obj.労基法違反有無 = Boolean.Parse(労基法違反有無.ToString());
                    }

                    if (lbl_労基法違反有無.Text.ToString() == "有")
                    {
                        string 労基法違反有無 = "true";
                        obj.労基法違反有無 = Boolean.Parse(労基法違反有無.ToString());
                    }
                    if (lbl_労基法違反日.Text != "")
                    {
                        obj.労基法違反有無日付 = DateTime.Parse(lbl_労基法違反日.Text.ToString());
                    }
                    obj.労基法違反有無内容 = lbl_労基法違反内容.Text.ToString();
                    obj.安全衛生措置 = lbl_安全衛生措置.Text.ToString();
                    string a = Session["拠点ID"].ToString();
                    obj.拠点ID = Int32.Parse(a.ToString());


                    frm.Insert拠点履歴(obj);

                    Session.Remove("listValuefrmA_CompBranchHistoryInput");
                    Response.Redirect("frmA_CompBranchHistoryInput.aspx");
                }
                else
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "myScripts", "<script language='javascript'>alert('データが重複しています。');</script>", false);
                    return;
                }
             
            }
            
        }
        catch { }
    }


    public string checkYear()
    {
        string check = "";
        拠点履歴Manager frm = new 拠点履歴Manager();
        DataTable dt = new DataTable();
        int 年度 = Int32.Parse(lbl_情報有効開始日.Text.ToString());
        int 拠点ID = Int32.Parse(Session["拠点ID"].ToString());
        dt = frm.GetYear拠点履歴_TUNG(年度, 拠点ID);
        if (dt.Rows.Count > 0)
        {
            check = "false";
        }
        else
        {
            check = "true";
        }
        return check;

    }


    protected void btn_修正_Click(object sender, EventArgs e)
    {
        Response.Redirect("frmA_CompBranchHistoryInput.aspx");
    }


    public void getSession()
    {
        List<List<String>> list = new List<List<String>>();
        list = (System.Collections.Generic.List<List<String>>)Session["listValuefrmA_CompBranchHistoryInput"];
        foreach (List<String> str in list)
        {
            if (str[0] == "txt_情報有効開始日")
            {
                lbl_情報有効開始日.Text = str[1];
            }

            if (str[0] == "txt_勤務開始時間")
            {
                lbl_勤務開始時間.Text = str[1];
            }

            if (str[0] == "txt_勤務終了時間")
            {
                lbl_勤務終了時間.Text = str[1];
            }

            if (str[0] == "ddl_昼休み開始時間")
            {
                lbl_昼休み開始時間.Text = str[1];
            }

            if (str[0] == "ddl_昼休み終了時間")
            {
                lbl_昼休み終了時間.Text = str[1];
            }

            if (str[0] == "txt_休憩時間")
            {
                lbl_休憩時間.Text = str[1];
            }

            if (str[0] == "txt_所定労働時間")
            {
                lbl_所定労働時間.Text = str[1];
            }

            if (str[0] == "txt_所定労働時間_分")
            {
                lbl_所定労働時間_分.Text = str[1];
            }

            if (str[0] == "txt_平均週間労働日数")
            {
                lbl_平均週間労働日数.Text = str[1];
            }

            if (str[0] == "txt_年間労働日数")
            {
                lbl_年間労働日数.Text = str[1];
            }

            if (str[0] == "txt_年間労働日数翌年")
            {
                lbl_年間労働日数翌年.Text = str[1];
            }

            if (str[0] == "txt_年間労働日数翌々年")
            {
                lbl_年間労働日数翌々年.Text = str[1];
            }

            if (str[0] == "txt_健康診断回数")
            {
                lbl_健康診断回数.Text = str[1];
            }

            if (str[0] == "txt_前回健康診断実施日")
            {
                lbl_前回健康診断実施日.Text = ConvertJapan(str[1]);
            }

            if (str[0] == "ddl_休業４日以上事故有無")
            {
                if (str[1] == "1")
                {
                    string 休業４日以上事故有無 = "有";
                    lbl_休業４日以上事故有無.Text = 休業４日以上事故有無;
                }
                else
                {
                    string 休業４日以上事故有無 = "無";
                    lbl_休業４日以上事故有無.Text = 休業４日以上事故有無;
                }
            }

            if (str[0] == "txt_件数1")
            {
                if (lbl_休業４日以上事故有無.Text == "無")
                {
                    lbl_件数1.Text = "";
                }
                if (lbl_休業４日以上事故有無.Text == "有")
                {

                    lbl_件数1.Text = str[1];
                    
                }
            }

            if (str[0] == "txt_人数1")
            {
                if (lbl_休業４日以上事故有無.Text == "無")
                {
                    lbl_人数1.Text = "";
                }
                if (lbl_休業４日以上事故有無.Text == "有")
                {
                    lbl_人数1.Text = str[1];
                }
                
            }

            if (str[0] == "ddl_死亡事故有無")
            {
                
                if (str[1] == "1")
                {
                    string 死亡事故有無 = "有";
                    lbl_死亡事故有無.Text = 死亡事故有無;
                }
                else
                {
                    string 死亡事故有無 = "無";
                    lbl_死亡事故有無.Text = 死亡事故有無;
                }
            }


            if (str[0] == "txt_件数2")
            {
                if (lbl_死亡事故有無.Text == "無")
                {
                    lbl_件数2.Text = "";
                }
                if (lbl_死亡事故有無.Text == "有")
                {
                    lbl_件数2.Text = str[1];
                }
                
            }

            if (str[0] == "txt_人数2")
            {
                if (lbl_死亡事故有無.Text == "無")
                {
                    lbl_件数2.Text = "";
                }
                if (lbl_死亡事故有無.Text == "有")
                {
                    lbl_人数2.Text = str[1];
                }
                
            }

            if (str[0] == "DropDownList1")
            {
                

                if (str[1] == "1")
                {
                    string 労基法違反有無 = "有";
                    lbl_労基法違反有無.Text = 労基法違反有無;
                }
                else
                {
                    string 労基法違反有無 = "無";
                    lbl_労基法違反有無.Text = 労基法違反有無;
                }
            }

            if (str[0] == "txt労基法違反日")
            {
                if (lbl_労基法違反有無.Text == "有")
                {
                    lbl_労基法違反日.Text = ConvertJapan(str[1]);
                }
                else
                {
                    lbl_労基法違反日.Text = "";
                }
            }

            if (str[0] == "txt_労基法違反内容")
            {
                if (lbl_労基法違反有無.Text == "有")
                {
                    lbl_労基法違反内容.Text = str[1];
                }
                else
                {
                    lbl_労基法違反内容.Text = "";   
                }
            }

            if (str[0] == "txt_安全衛生措置")
            {
                lbl_安全衛生措置.Text = str[1];
            }



        }

    
    }


    public string ConvertDateEnglish(string str)// ham convert ngay thang nam.
    {
        if (str == "")
        {
            return str = "";
        }
        else
        {
            string date = str;
            DateTime d1 = DateTime.Parse(date);
            d1.Year.ToString();
            return date = d1.ToString("yyyy/MM/dd");

        }
    }

    public string ConvertJapan(string str)// ham convert ngay thang nam.
    {
        if (str == "")
        {
            return str = "";
        }
        else
        {
            string date = str;
            DateTime d1 = DateTime.Parse(date);
            d1.Year.ToString();
            return date = d1.ToString("yyyy年MM月dd日");

        }
    }
}
